/*
 * @(#)FormSubmission.java
 *
 * Copyright (c) 2003 DCIVision Ltd
 * All rights reserved.
 *
 * This software is the confidential and proprietary information of DCIVision
 * Ltd ("Confidential Information").  You shall not disclose such Confidential
 * Information and shall use it only in accordance with the terms of the license
 * agreement you entered into with DCIVision Ltd.
 */
package com.dcivision.form.bean;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;

import com.dcivision.framework.bean.AbstractBaseObject;

/**
  FormSubmission.java

  This class is the serializable bean reflecting business logic uses.

    @author           Scott Tong
    @company          DCIVision Limited
    @creation date    08/01/2004
    @version          $Revision: 1.21 $
*/

public class FormSubmission extends AbstractBaseObject {

  public static final String REVISION = "$Revision: 1.21 $";

  static final long serialVersionUID = -1040847882227624022L;

  public static final String FORM_SUBMISSION_STATU_SAVED = "S";
  public static final String FORM_SUBMISSION_STATU_PENDING = "P";
  public static final String FORM_SUBMISSION_STATU_COMPLETED = "C";
  public static final String FORM_SUBMISSION_STATU_APPROVED = "A";
  public static final String FORM_SUBMISSION_STATU_REJECTED = "R";
  public static final String FORM_SUBMISSION_STATU_YES = "T";
  public static final String FORM_SUBMISSION_STATU_NO = "F";
  public static final String FORM_SUBMISSION_STATU_SUBMIT = "M";  
  public static final String FORM_SUBMISSION_STATU_DRAFT = "D";
  public static final String FORM_SUBMISSION_STATU_CANCEL= "K";
  
  public static final String FORM_SUBMISSION_FUNCTION = "FMR";
  
  public static final String NAV_MODE_EXPORT = "EX";
  public static final String NAV_MODE_EXPORT_DB = "EXD"; 
  public static final String NAV_MODE_CON_VIEW_TRACKING = "PT"; 
  


  private Integer trackID = null;
  private Integer workflowRecordID = null;
  private Integer formRecordID = null;
  private String ip = null;
  private String guestName = null;
  private String email = null;
  private String contactInfo = null;
  private Integer dmsParentID = null;
  private String status = null;

  public String formCode = null;     //Presentation ONLY
  public String formVersion = null;  //Presentation ONLY
  public String title = null;        //Presentation ONLY
  public Integer formDocID = null;
  public List workflowRelationshipList = new ArrayList();
  
  private String workflowCode = null;
  private String workflowVersion = null;
  private String formType = null;
  private Integer workflowStepID = null;
  private String workflowStepName = null;
  private Integer progressID = null;
  private Timestamp workflowEndDate = null; 
  private String submissionStatus = null;
  private List workflowList = null;
  private int workflowListSize = -1;
  private Integer seq = null;
  
  // audit trail
  private List formDataList = new ArrayList();
 
  private int submissionRecordCount = 0;
  
  public FormSubmission() {
    super();
  }

  public Integer getFormRecordID() {
    return(this.formRecordID);
  }

  public void setFormRecordID(Integer formRecordID) {
    this.formRecordID = formRecordID;
  }

  public String getIp() {
    return(this.ip);
  }

  public void setIp(String ip) {
    this.ip = ip;
  }

  public String getGuestName() {
    return(this.guestName);
  }

  public void setGuestName(String guestName) {
    this.guestName = guestName;
  }

  public String getEmail() {
    return(this.email);
  }

  public void setEmail(String email) {
    this.email = email;
  }

  public String getContactInfo() {
    return(this.contactInfo);
  }

  public void setContactInfo(String contactInfo) {
    this.contactInfo = contactInfo;
  }
  
  public Integer getDmsParentID() {
    return dmsParentID;
  }
    
  public void setDmsParentID(Integer dmsParentID) {
    this.dmsParentID = dmsParentID;
  }
    
  public String getStatus() {
    return(this.status);
  }

  public void setStatus(String status) {
    this.status = status;
  }

  public String getFormCode() {
    return(this.formCode);
  }

  public void setFormCode(String formCode) {
    this.formCode = formCode;
  }

  public String getFormVersion() {
    return(this.formVersion);
  }

  public void setFormVersion(String formVersion) {
    this.formVersion = formVersion;
  }

  public String getTitle() {
    return(this.title);
  }

  public void setTitle(String title) {
    this.title = title;
  }

  public Integer getFormDocID() {
    return(this.formDocID);
  }

  public void setFormDocID(Integer formDocID) {
    this.formDocID = formDocID;
  }

  /** Getter for property workflowRelationshipList.
    * @return Value of property workflowRelationshipList.
    */        
  public List getWorkflowRelationshipList() {
    return this.workflowRelationshipList;
  }

  /** Setter for property workflowRelationshipList.
    * @param formDataList New value of property workflowRelationshipList.
    */
  public void setWorkflowRelationshipList(List workflowRelationshipList) {
    this.workflowRelationshipList = workflowRelationshipList;
  }

  

  public Object clone() {
    FormSubmission obj = new FormSubmission();
    obj.setID(this.getID());
    obj.setFormRecordID(this.getFormRecordID());
    obj.setIp(this.getIp());
    obj.setGuestName(this.getGuestName());
    obj.setEmail(this.getEmail());
    obj.setContactInfo(this.getContactInfo());
    obj.setDmsParentID(this.getDmsParentID());
    obj.setStatus(this.getStatus());
    obj.setFormCode(this.getFormCode());
    obj.setFormVersion(this.getFormVersion());
    obj.setTitle(this.getTitle());
    obj.setTrackID(this.getTrackID());
    obj.setWorkflowRecordID(this.getWorkflowRecordID());
    

    obj.setRecordStatus(this.getRecordStatus());
    obj.setUpdateCount(this.getUpdateCount());
    obj.setCreatorID(this.getCreatorID());
    obj.setCreateDate(this.getCreateDate());
    obj.setUpdaterID(this.getUpdaterID());
    obj.setUpdateDate(this.getUpdateDate());
    obj.setCreatorName(this.getCreatorName());
    obj.setUpdaterName(this.getUpdaterName());
    return(obj);
  }
  
  public Integer getTrackID() {
  	return trackID;
  }
  
  public void setTrackID(Integer trackID) {
  	this.trackID = trackID;
  }
  
  public Integer getWorkflowRecordID() {
  	return workflowRecordID;
  }
  
  public void setWorkflowRecordID(Integer workflowRecordID) {
  	this.workflowRecordID = workflowRecordID;
  }
    
  public String getWorkflowCode() {
  	return workflowCode;
  }
  
  public void setWorkflowCode(String workflowCode) {
  	this.workflowCode = workflowCode;
  }
  
  public String getWorkflowVersion() {
  	return workflowVersion;
  }
  
  public void setWorkflowVersion(String workflowVersion) {
  	this.workflowVersion = workflowVersion;
  }
  
  public String getFormType() {
  	return formType;
  }
  
  public void setFormType(String formType) {
  	this.formType = formType;
  }
  
  public Integer getWorkflowStepID() {
        return workflowStepID;
  }
  
  public void setWorkflowStepID(Integer workflowStepID) {
        this.workflowStepID = workflowStepID;
  }
  
  public String getWorkflowStepName() {
        return workflowStepName;
  }
  
  public void setWorkflowStepName(String workflowStepName) {
        this.workflowStepName = workflowStepName;
  }
  
  public int getSubmissionRecordCount() {
    return submissionRecordCount;
  }
  
  public void setSubmissionRecordCount(int submissionRecordCount) {
    this.submissionRecordCount = submissionRecordCount;
  }
  
  public Integer getProgressID() {
    return progressID;
  }
  
  public void setProgressID(Integer progressID) {
    this.progressID = progressID;
  }
  
  public Timestamp getWorkflowEndDate() {
    return workflowEndDate;
  }
  
  public void setWorkflowEndDate(Timestamp workflowEndDate) {
    this.workflowEndDate = workflowEndDate;
  }
  
  public String getSubmissionStatus() {
    return submissionStatus;
  }
  
  public void setSubmissionStatus(String submissionStatus) {
    this.submissionStatus = submissionStatus;
  }
  
  public List getWorkflowList() {
    return workflowList;
  }
  
  public void setWorkflowList(List workflowList) {
    this.workflowList = workflowList;
  }
  
  public int getWorkflowListSize() {
    return workflowListSize;
  }
  
  public void setWorkflowListSize(int workflowListSize) {
    this.workflowListSize = workflowListSize;
  }
  
  public Integer getSeq() {
    return seq;
  }
  
  public void setSeq(Integer seq) {
    this.seq = seq;
  }

	public List getFormDataList() {
		return formDataList;
	}

	public void setFormDataList(List formDataList) {
		this.formDataList = formDataList;
	}
}
